home *** CD-ROM | disk | FTP | other *** search
- #include <time.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
-
- #define CMD_LEN 133
- #define DEP_LEN 40
-
- typedef enum {WHITE, GRAY, BLACK} COLOR;
-
- #define FAIL 1
- #define SUCCEED 0
-
- typedef struct CMD {
- struct CMD *link;
- char cmdstr[ CMD_LEN ];
- } CMD;
-
- typedef struct DEP {
- struct DEP *link;
- char depstr[ DEP_LEN ];
- } DEP;
-
- typedef struct TARGET {
- struct TARGET *link;
- char target[ DEP_LEN ];
- struct CMD *cmdlink;
- struct DEP *deplink;
- enum COLOR color;
- } TARGET;
-
- TARGET *parse_makefile(int argc, char *argv[], char *target);
- long process_dep(TARGET *p, char *starting_dep);
- TARGET *add_target(TARGET **head, char *target);
- DEP *insert_dependency(TARGET *p, char *dependency);
- CMD *insert_cmd(TARGET *p, char *cmd);
- char *skip_ws(char *s);
- TARGET *search_target_list(TARGET *head, char *target);
- long build_target(TARGET *head, TARGET *p, time_t *parent_t);
- long exec_cmd_list(CMD *p);
- long fatal_error(char *s);
-